package com.papercutting.platform.service;

import com.papercutting.platform.entity.Banner;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;

import java.time.LocalDateTime;
import java.util.List;

/**
 * 轮播图服务接口
 */
public interface BannerService {
    
    /**
     * 保存轮播图
     */
    Banner save(Banner banner);
    
    /**
     * 根据ID查找轮播图
     */
    Banner findById(Long id);
    
    /**
     * 查找所有轮播图
     */
    List<Banner> findAll();
    
    /**
     * 分页查找轮播图
     */
    Page<Banner> findAll(Pageable pageable);
    
    /**
     * 根据ID删除轮播图
     */
    void deleteById(Long id);
    
    /**
     * 根据状态查找轮播图
     */
    List<Banner> findByStatus(Integer status);
    
    /**
     * 根据状态和时间范围查找有效的轮播图
     */
    List<Banner> findByStatusAndTimeRange(Integer status, LocalDateTime now);
    
    /**
     * 根据排序号升序查找启用的轮播图
     */
    List<Banner> findActiveByOrderBySortOrderAsc();
}